package com.ruoyi.driver.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 消息通知对象 driver_notice
 * 
 * @author ruoyi
 * @date 2025-08-18
 */
public class DriverNotice extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 通知ID */
    @Excel(name = "通知ID")
    private Integer noticeId;

    /** 司机ID */
    @Excel(name = "司机ID")
    private Integer driverId;

    /** 消息类型：ORDER-订单相关，SYSTEM-系统通知，SAFETY-安全提醒，ACCOUNT-账户通知 */
    @Excel(name = "消息类型：ORDER-订单相关，SYSTEM-系统通知，SAFETY-安全提醒，ACCOUNT-账户通知")
    private String messageType;

    /** 通知标题 */
    @Excel(name = "通知标题")
    private String title;

    /** 通知内容 */
    @Excel(name = "通知内容")
    private String content;

    /** 是否已读 */
    @Excel(name = "是否已读")
    private Integer isRead;

    /** 关联订单ID（如果是订单相关通知） */
    @Excel(name = "关联订单ID", readConverterExp = "如=果是订单相关通知")
    private String relatedOrderId;

    /** 过期时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "过期时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date expireTime;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createdTime;

    /** 阅读时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "阅读时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date readTime;

    public void setNoticeId(Integer noticeId) 
    {
        this.noticeId = noticeId;
    }

    public Integer getNoticeId() 
    {
        return noticeId;
    }

    public void setDriverId(Integer driverId) 
    {
        this.driverId = driverId;
    }

    public Integer getDriverId() 
    {
        return driverId;
    }

    public void setMessageType(String messageType) 
    {
        this.messageType = messageType;
    }

    public String getMessageType() 
    {
        return messageType;
    }

    public void setTitle(String title) 
    {
        this.title = title;
    }

    public String getTitle() 
    {
        return title;
    }

    public void setContent(String content) 
    {
        this.content = content;
    }

    public String getContent() 
    {
        return content;
    }

    public void setIsRead(Integer isRead) 
    {
        this.isRead = isRead;
    }

    public Integer getIsRead() 
    {
        return isRead;
    }

    public void setRelatedOrderId(String relatedOrderId) 
    {
        this.relatedOrderId = relatedOrderId;
    }

    public String getRelatedOrderId() 
    {
        return relatedOrderId;
    }

    public void setExpireTime(Date expireTime) 
    {
        this.expireTime = expireTime;
    }

    public Date getExpireTime() 
    {
        return expireTime;
    }

    public void setCreatedTime(Date createdTime) 
    {
        this.createdTime = createdTime;
    }

    public Date getCreatedTime() 
    {
        return createdTime;
    }

    public void setReadTime(Date readTime) 
    {
        this.readTime = readTime;
    }

    public Date getReadTime() 
    {
        return readTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("noticeId", getNoticeId())
            .append("driverId", getDriverId())
            .append("messageType", getMessageType())
            .append("title", getTitle())
            .append("content", getContent())
            .append("isRead", getIsRead())
            .append("relatedOrderId", getRelatedOrderId())
            .append("expireTime", getExpireTime())
            .append("createdTime", getCreatedTime())
            .append("readTime", getReadTime())
            .toString();
    }
}
